En Côte d’Ivoire, le citron est un produit agricole important, tant pour la consommation locale que pour l’exportation. Cependant, son prix varie considérablement selon les régions. Abidjan, en tant que principal centre économique, dispose d’un marché plus intégré aux réseaux d’import-export, tandis que Bouaké, ville stratégique du centre, pourrait être plus sensible aux fluctuations des cultures locales.
Ces différences structurelles soulèvent une interrogation centrale : les dynamiques de prix observées dans ces deux villes obéissent-elles aux mêmes logiques ? Et peut-on les modéliser efficacement pour mieux les anticiper ?
Cette étude vise à offrir une vision claire des dynamiques de prix du citron sur deux marchés emblématiques du pays (Abidjan et Bouaké). Elle s’attache à :
Observer et comparer l’évolution des prix du citron dans les villes d’Abidjan et de Bouaké sur la période de 2020 à 2022
Utiliser des méthodes d’analyse adaptées pour représenter les dynamiques propres à chaque ville
Apprécier la fiabilité des différentes méthodes utilisées et identifier ceux qui offrent les meilleures perspectives de prévision selon les cas
Afin de mieux comprendre l’évolution des prix du citron à Abidjan et Bouaké, nous avons adopté une démarche structurée autour de deux grandes étapes :
Observation et analyse descriptive : les données seront explorées visuellement afin d’identifier les tendances générales, les variations saisonnières éventuelles et les éventuelles anomalies. Des indicateurs simples tels que la moyenne et la dispersion pourront enrichir cette analyse.
Modélisation et prévision : différents modèles seront explorés de manière progressive pour identifier celui qui représente le mieux l’évolution des prix observés. L’objectif est de comparer les approches et de sélectionner le modèle le plus pertinent pour produire des prévisions fiables.
Les graphiques ci-dessus ont été obtenus à partir des données reccueillies. On observe que, sur la période de 2020 à 2022, les prix du citron à Bouaké apparaissent globalement plus stables et plus élevés qu’à Abidjan au début du graphique, notamment en 2020 où Bouaké affiche des niveaux autour de 850 FCFA/kg contre 600 FCFA/kg à Abidjan. À partir de fin 2020, Abidjan connaît une forte instabilité avec des fluctuations prononcées, tandis que Bouaké subit une chute brutale des prix en 2021, oscillant ensuite entre 400 et 600 FCFA/kg. Un pic spectaculaire est enregistré à Abidjan fin 2021, atteignant environ 1300 FCFA/kg.
Les graphiques de saisonnalité des prix du citron révèlent des comportements distincts selon les années, ils ne montrent pas de saisonnalité évidente. Il ne faut toutefois pas exclure qu’il pourrait y avoir des effets saisonniers masqués ou instables. Voyons cela avec des outils comme l’ACF et le PACF.
Au vu des graphiques, il n’y a à priori pas de saisonnalité.
Pour mieux comprendre la structure interne des séries temporelles du prix du citron, nous procédons à leur décomposition. Cette démarche permet d’isoler trois composantes essentielles : la tendance (évolution à long terme), la saisonnalité (motifs périodiques) et les résidus (variations aléatoires). Nous appliquons successivement une décomposition additive, multiplicative, puis la méthode STL (Seasonal and Trend decomposition using Loess). Toutefois, vu qu’il n’y a pas assez d’observations dans les données pour détecter une saisonnalité fiable avec ces méthodes, nous ne nous attarderons pas sur la saisonnalité.
Le modèle de décomposition additive s’écrit : \[Y_t = T_t + S_t + \varepsilon_t\] où :
Le modèle de décomposition multiplicative s’écrit : \[Y_t = T_t \times S_t \times \varepsilon_t\] où :
Après application, on obtient les graphiques suivants :
##
## Attachement du package : 'gridExtra'
## L'objet suivant est masqué depuis 'package:dplyr':
##
## combine
On observe des dynamiques contrastées entre les marchés du citron d’Abidjan et Bouaké. À Abidjan, on observe une forte volatilité avec une tendance marquée par un effondrement des prix en 2020 suivi d’un rebond vigoureux en 2021, et des résidus importants. À l’inverse, Bouaké présente une évolution plus stable avec une tendance culminant en 2021 et des résidus plus contenus.
La méthode STL (Seasonal-Trend decomposition using Loess) se distingue des décompositions additive et multiplicative par sa plus grande flexibilité. Contrairement à ces dernières, qui supposent une relation fixe entre tendance, saisonnalité et résidus, STL utilise un lissage local (Loess) pour extraire chaque composante de manière souple. Cela lui permet de mieux gérer les données irrégulières, les tendances non linéaires et les saisonnalités qui évoluent dans le temps.
La décomposition STL révèle des comportements contrastés entre Abidjan et Bouaké. À Abidjan, la série est marquée par une forte instabilité avec plusieurs oscillations de prix. En revanche, Bouaké, certes avec une tendance changeante, présente une structure plus stable, avec des résidus modérés.
Pour choisir la méthode de décomposition la plus adaptée, un examen des résidus et le calcul de l’erreur RMSE (Root Mean Squared Error, ou racine de l’erreur quadratique moyenne) nous seront utiles.
Les graphiques des résidus sont représentés ci-dessous :
Sur le graphique, les résidus issus des méthodes additive et multiplicative sont fortement concentrés autour d’une valeur centrale avec peu de dispersion. En revanche, ceux de la méthode STL présentent une distribution plus étalée et symétrique autour de zéro.
L’écriture mathématique de l’erreur RMSE est : \[RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^n \left(y_i - \hat{y}_i \right)^2}\]
où :
Après application les résultats sont présentés dans le tableau ci-dessous :
Les résultats montrent que, pour Abidjan comme pour Bouaké, le modèle multiplicatif affiche les plus faibles RMSE, traduisant un meilleur ajustement aux données que les modèles additif et STL.
Le modèle ARIMA est donné par :
\[\phi(L)(1 - L)^d X_t = \theta(L)\varepsilon_t\]
Avec :
On espère rejeter \(H_0\) ici, car ça voudrait dire que la série est stationnaire.
Ici, on espère ne pas rejeter \(H_0\), ce serait une preuve que la série est stationnaire.
Les résultats des tests ont suggéré une stationnarité incertaine. Une différenciation a donc été appliquée aux séries. Les résultats des tests faits après la différenciation ont confirmé la stationnarité des séries.
Conclusion : Les deux séries différenciées sont stationnaires (prêtes pour ARIMA/SARIMA) avec \(D = d = 1\).
Vu que nous n’avons pas de saisonnalité, nous allons faire un auto.arima qui va nous donner les valeurs de \(p\) et \(q\).
Pour l’applications, nous séparons les données en données d’apprentissage et de test.
La série d’Abidjan qui compte 110 semaines a été repartie comme suit :
La série de Bouaké qui compte 108 semaines a été repartie comme suit :
## Series: train_abi
## ARIMA(1,1,0)
##
## Coefficients:
## ar1
## -0.3508
## s.e. 0.0995
##
## sigma^2 = 7877: log likelihood = -513.28
## AIC=1030.56 AICc=1030.7 BIC=1035.49
## Series: train_bou
## ARIMA(0,1,0)
##
## sigma^2 = 7691: log likelihood = -500.89
## AIC=1003.79 AICc=1003.83 BIC=1006.23
On construit un modèle \(ARIMA(1,1,1)\) pour Abidjan et Bouaké et on le compare au modèle \(Auto ARIMA\) par le critère \(AIC\). Notons que l’\(AIC\) a pour formule mathématique : \[AIC = 2k - 2\ln(\hat{L})\]
où :
## Series: train_bou
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## 0.7652 -0.9069
## s.e. 0.2044 0.1456
##
## sigma^2 = 7494: log likelihood = -498.9
## AIC=1003.8 AICc=1004.09 BIC=1011.12
## Series: train_abi
## ARIMA(1,1,1)
##
## Coefficients:
## ar1 ma1
## -0.6313 0.3340
## s.e. 0.3152 0.4019
##
## sigma^2 = 7910: log likelihood = -512.97
## AIC=1031.93 AICc=1032.22 BIC=1039.33
Le résultat des comparaisons est consigné dans le tableau suivant :
Pour les ajustements des modèles, nous remarquons que :
Même si la saisonnalité n’apparaît pas clairement dans les données, nous avons choisi de forcer un SARIMA afin d’intégrer une composante saisonnière hypothétique. Nous avons retenu une période s=4 au lieu de s=52 car l’estimation avec s=52 a généré une erreur numérique liée au manque de données pour couvrir un cycle complet annuel. Ce choix permet néanmoins de tester l’existence d’un effet périodique latent plus court et d’évaluer son impact sur les prévisions, tout en comparant la performance avec un modèle sans saisonnalité
Comme précédemment, nous comparons ce modèle \(SARIMA\) aux deux modèles précédents par le critère \(AIC\).
Les résultats sont contenus dans le tableau ci-dessous :
Encore une fois, pour les ajustements des modèles, nous remarquons que :
Ce qui veut dire qu’un modèle \(SARIMA\) n’est pas adapté aux données en notre possession.
Nous mesurons la performances des modèles par les métriques \(MAE\) et \(RMSE\). La métrique \(MAE\) a pour écriture mathématique : \[MAE = \frac{1}{n} \sum_{i = 1}^n |y_i - \hat{y}_i|\]
où :
La métrique \(RMSE\) a été définie plus haut.
Les résultats sont présentés dans le tableau ci-dessous :
Pour la ville d’Abidjan, les performances des deux modèles sont très proches : l’Auto ARIMA présente un RMSE légèrement inférieur (487,6 contre 487,9) tandis que l’ARIMA classique obtient un MAE plus faible (425,2 contre 450), ce qui signifie qu’aucun des deux ne domine nettement. En revanche, pour Bouaké, l’Auto ARIMA surpasse largement l’ARIMA, avec un RMSE de 64 contre 182,3 et un MAE de 27,3 contre 172,1.
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,0)
## Q* = 2.686, df = 17, p-value = 1
##
## Model df: 1. Total lags used: 18
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)
## Q* = 12.334, df = 15, p-value = 0.6536
##
## Model df: 2. Total lags used: 17
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 16.929, df = 17, p-value = 0.4592
##
## Model df: 0. Total lags used: 17
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,1)
## Q* = 1.8014, df = 16, p-value = 1
##
## Model df: 2. Total lags used: 18
L’analyse des performances montre que le modèle pour Bouaké surpasse celui d’Abidjan. Les indicateurs d’erreur, comme la MAE et le RMSE, sont plus faibles à Bouaké. L’examen des résidus révèle également que le modèle ARIMA de Bouaké produit des erreurs plus stables et aléatoires, sans autocorrélation notable, tandis que celui d’Abidjan présente quelques pics isolés.
## ME RMSE MAE MPE MAPE MASE
## Training set 6.145773 87.73877 40.97439 -0.8702391 8.038923 0.1467739
## Test set -122.727273 487.57284 450.00000 -74.3668831 98.003247 1.6119403
## ACF1 Theil's U
## Training set 0.01304828 NA
## Test set 0.90784668 6.591304
## ME RMSE MAE MPE MAPE MASE
## Training set 1.169767 87.18801 20.35581 -1.169934 4.062625 0.07343211
## Test set 27.272727 63.96021 27.27273 3.208556 3.208556 0.09838437
## ACF1 Theil's U
## Training set -0.1378731 NA
## Test set 0.7398990 1.742011
## ME RMSE MAE MPE MAPE MASE
## Training set 2.424536 85.0449 27.52688 -1.55080 5.374678 0.09930123
## Test set 138.901507 487.8517 425.21826 -23.21913 65.963740 1.53394385
## ACF1 Theil's U
## Training set -0.03681861 NA
## Test set 0.89250945 3.960433
## ME RMSE MAE MPE MAPE MASE
## Training set 5.592636 87.4110 40.11167 -0.8007292 7.813861 0.1436836
## Test set -172.089808 182.2564 172.08981 -24.3218200 24.321820 0.6164411
## ACF1 Theil's U
## Training set -0.0280278 NA
## Test set 0.7370362 5.250963
## Model RMSE MAE
## 1 Decomposition Multiplicative 662.2691 548.7134